package com.bjtu.toyexchange;

/*
 * 登陆界面
 * 未注册用户可以点击注册按钮进行注册
 * 已注册用户输入自己的用户名和密码后可以直接登陆该软件
 */

import java.util.HashMap;
import java.util.Map;

import org.json.JSONObject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.main.toyexchange.MenuActivity;
import com.util.toyexchange.DialogUtil;
import com.util.toyexchange.HttpUtil;


public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//登陆按钮的事件监听
		Button loginId = (Button)this.findViewById(R.id.LoginId);
		loginId.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				
				EditText UserNameValue = (EditText)MainActivity.this.findViewById(R.id.UserNameValue);
				String username = UserNameValue.getText().toString();
				
				EditText PasswordValue = (EditText)MainActivity.this.findViewById(R.id.PasswordValue);
				String password = PasswordValue.getText().toString();
				
				// 执行输入校验
				if (validate(username,password))  //①
				{
					// 如果登录成功
					if (loginPro(username,password))  //②
					{
						Intent intent = new Intent();
						intent.putExtra("username", username);
						intent.putExtra("password", password);
						intent.setClass(MainActivity.this, MenuActivity.class);
						MainActivity.this.startActivity(intent);
					}
					else
					{
						
					}
				}
				
			}
		});

		//注册按钮的事件监听
		Button registerId = (Button)this.findViewById(R.id.RegisterId);
		registerId.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClass(MainActivity.this, RegisterActivity.class);
				MainActivity.this.startActivity(intent);
				
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	//判断用户名密码是否正确
	private boolean loginPro(String username, String password)
	{
		JSONObject jsonObj;
		try
		{
			jsonObj = query(username, password);
			// 如果userId 大于0
			if (jsonObj.getInt("userId") > 0)
			{
				return true;
			}
			else
				DialogUtil.showDialog(this
						, "用户名或密码错误！", false);
		}
		catch (Exception e)
		{
			DialogUtil.showDialog(this
				, "服务器响应异常，请稍后再试！", false);
			e.printStackTrace();
		}

		return false;
	}
	
	// 定义发送请求的方法
	private JSONObject query(String username, String password)
		throws Exception
	{
		// 使用Map封装请求参数
		Map<String, String> map = new HashMap<String, String>();
		map.put("username", username);
		map.put("password", password);
		// 定义发送请求的URL
		String url = HttpUtil.BASE_URL + "LoginServlet";
		// 发送请求
		JSONObject jb = new JSONObject(HttpUtil.postRequest(url, map)); 
		return jb;
	}
	
	// 对用户输入的用户名、密码进行校验
	private boolean validate(String username, String password)
	{
		if (username.equals(""))
		{
			DialogUtil.showDialog(this, "用户名不可为空！", false);
			return false;
		}
		if (password.equals(""))
		{
			DialogUtil.showDialog(this, "密码不可为空！", false);
			return false;
		}
		return true;
	}
}
